package com.bosssoft.trainee.nontax.service;

import com.bosssoft.trainee.nontax.entity.dto.TreeNode;

import java.util.List;

/**
 * @Description: 权限控制service
 * @Author: Luo WenLong
 * @Date: 2022/6/26 13:04
 */
public interface AuthorizeService {
    /**
     * @Description: 获取所有页面的所有操作
     * @return: java.util.List<com.bosssoft.trainee.nontax.entity.dto.TreeNode>
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:04
     */
    List<TreeNode> getAllResourceAndAllOptions();

    /**
     * @Description: 获取该角色授权的所有操作
     * @param roleId role id
     * @return: java.util.List<java.lang.Integer>
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:06
     */
    List<Integer> getRolePermissionIds(Integer roleId);

    /**
     * @Description: 改变角色于授权用户关系
     * @param roleId role id
     * @param userId user id
     * @param isRoleAuthorizeToUser 是否授权 1授权 -1撤销授权
     * @return: boolean
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:06
     */
    boolean changeUserRole(Integer roleId, Integer userId, boolean isRoleAuthorizeToUser);

    /**
     * @Description: 改变角色授权信息
     * @param roleId role id
     * @param permissionId permission ids 新的授权信息
     * @return: int
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:07
     */
    int changeRolePermission(Integer roleId, List<Integer> permissionId);

}
